home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 44 / PC Actual CD 44.iso / Linux / Cygwin / full.exe / Disk1 / data1.cab / Tools / H-i586-cygwin32 / i586-cygwin32 / include / Windows32 / Base.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-12-04  |  18.5 KB  |  629 lines

  1. /* 
  2.    Base.h
  3.  
  4.    Base definitions
  5.  
  6.    Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
  7.  
  8.    Author: Scott Christley <scottc@net-community.com>
  9.  
  10.    This file is part of the Windows32 API Library.
  11.  
  12.    This library is free software; you can redistribute it and/or
  13.    modify it under the terms of the GNU Library General Public
  14.    License as published by the Free Software Foundation; either
  15.    version 2 of the License, or (at your option) any later version.
  16.    
  17.    This library is distributed in the hope that it will be useful,
  18.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  19.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  20.    Library General Public License for more details.
  21.  
  22.    If you are interested in a warranty or support for this source code,
  23.    contact Scott Christley <scottc@net-community.com> for more information.
  24.    
  25.    You should have received a copy of the GNU Library General Public
  26.    License along with this library; see the file COPYING.LIB.
  27.    If not, write to the Free Software Foundation, 
  28.    59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  29. */ 
  30.  
  31. #ifndef _GNU_H_WINDOWS32_BASE
  32. #define _GNU_H_WINDOWS32_BASE
  33.  
  34. #ifdef __cplusplus
  35. extern "C" {
  36. #endif /* __cplusplus */
  37.  
  38. #ifndef NULL
  39. #ifdef __cplusplus
  40. #define NULL  (0)
  41. #else
  42. #define NULL  ((void *)0)
  43. #endif
  44. #endif /* !NULL */
  45.  
  46. #define FALSE 0
  47. #define TRUE 1
  48.  
  49. /* Skip if invoked by resource compiler */
  50. #ifndef    RC_INVOKED
  51.  
  52. /* typedef ACMDRIVERENUMCB;
  53. typedef ACMDRIVERPROC;
  54. typedef ACMFILERCHOOSEHOOKPROC;
  55. typedef ACMFILTERENUMCB;
  56. typedef ACMFILTERTAGENUMCB;
  57. typedef ACMFORMATCHOOSEHOOKPROC;
  58. typedef ACMFORMATENUMCB;
  59. typedef ACMFORMATTAGENUMCB;
  60. typedef APPLET_PROC;
  61. */
  62. typedef unsigned short ATOM;
  63.  
  64. /* There is a conflict with BOOL between Objective-C and Win32,
  65.    so the Windows32 API Library defines and uses WINBOOL.
  66.    However, if we are not using Objective-C then define the normal
  67.    windows BOOL so Win32 programs compile normally.  If you are
  68.    using Objective-C then you must use WINBOOL for Win32 operations.
  69. */
  70. typedef int WINBOOL;
  71.  
  72. #ifndef __OBJC__
  73. typedef WINBOOL BOOL;
  74. #endif /* !__OBJC__ */
  75.  
  76. typedef unsigned char BOOLEAN;
  77. typedef unsigned char BYTE;
  78. typedef unsigned long CALTYPE;
  79. typedef unsigned long CALID;
  80. typedef char CCHAR;
  81. typedef unsigned long COLORREF;
  82. #define CONST const
  83.  
  84. /* Violates the alphabetical ordering here, but I would rather define the
  85.  * rest of the types in terms of WCHAR than have a bunch of #ifdefs.
  86.  * Colin Peters <colin@fu.is.saga-u.ac.jp> */
  87. #ifndef __cplusplus
  88. typedef unsigned short WCHAR;
  89. #else
  90. typedef wchar_t WCHAR;
  91. #endif
  92.  
  93. /* Check VOID before defining CHAR, SHORT, and LONG */
  94. #ifndef VOID
  95. #define VOID void
  96. typedef char CHAR;
  97. typedef short SHORT;
  98. typedef long LONG;
  99. #endif
  100.  
  101. /*
  102. typedef CTRYID;
  103. typedef DLGPROC;
  104. */
  105. typedef unsigned int DWORD; /* was unsigned long */
  106. typedef double DWORDLONG, *PDWORDLONG;
  107. /*
  108. typedef EDITWORDBREAKPROC;
  109. typedef ENHMFENUMPROC;
  110. typedef ENUMRESLANGPROC;
  111. typedef ENUMRESNAMEPROC;
  112. typedef ENUMRESTYPEPROC;
  113. */
  114. typedef float FLOAT;
  115. /* typedef GLOBALHANDLE; */
  116. typedef void *HANDLE;
  117. typedef HANDLE HACCEL;
  118. typedef HANDLE HBITMAP;
  119. typedef HANDLE HBRUSH;
  120. typedef HANDLE HCOLORSPACE;
  121. typedef HANDLE HCONV;
  122. typedef HANDLE HCONVLIST;
  123. typedef HANDLE HCURSOR;
  124. typedef HANDLE HDBC;
  125. typedef HANDLE HDC;
  126. typedef HANDLE HDDEDATA;
  127. typedef HANDLE HDESK;
  128. typedef HANDLE HDROP;
  129. typedef HANDLE HDWP;
  130. typedef HANDLE HENHMETAFILE;
  131. typedef HANDLE HENV;
  132. typedef int HFILE;
  133. /*
  134.    RES - Missing define added to compile INTERACTER code
  135. */
  136. #define HFILE_ERROR ((HFILE)-1)
  137. typedef HANDLE HFONT;
  138. typedef HANDLE HGDIOBJ;
  139. typedef HANDLE HGLOBAL;
  140. typedef HANDLE HGLRC;
  141. typedef HANDLE HHOOK;
  142. typedef HANDLE HICON;
  143. typedef HANDLE HIMAGELIST;
  144. typedef HANDLE HINSTANCE;
  145. typedef HANDLE HKEY, *PHKEY;
  146. typedef HANDLE HKL;
  147. typedef HANDLE HLOCAL;
  148. typedef HANDLE HMENU;
  149. typedef HANDLE HMETAFILE;
  150. typedef HANDLE HMODULE;
  151. typedef HANDLE HPALETTE;
  152. typedef HANDLE HPEN;
  153. typedef HANDLE HRASCONN;
  154. typedef long HRESULT;
  155. typedef HANDLE HRGN;
  156. typedef HANDLE HRSRC;
  157. typedef HANDLE HSTMT;
  158. typedef HANDLE HSZ;
  159. typedef HANDLE HWINSTA;
  160. typedef HANDLE HWND;
  161. typedef int INT;
  162. typedef unsigned short LANGID;
  163. typedef DWORD LCID;
  164. typedef DWORD LCTYPE;
  165. /* typedef LOCALHANDLE */
  166. typedef double LONGLONG, *PLONGLONG;
  167. typedef unsigned short *LP;
  168. typedef long LPARAM;
  169. typedef WINBOOL *LPBOOL;
  170. typedef BYTE *LPBYTE;
  171. typedef CONST CHAR *LPCCH;
  172. typedef CHAR *LPCH;
  173. typedef COLORREF *LPCOLORREF;
  174. typedef const char *LPCSTR;
  175.  
  176. #ifdef UNICODE
  177. typedef const unsigned short *LPCTSTR;
  178. #else
  179. typedef const char *LPCTSTR;
  180. #endif /* UNICODE */
  181.  
  182. typedef const WCHAR *LPCWCH;
  183. typedef const WCHAR *LPCWSTR;
  184. typedef DWORD *LPDWORD;
  185. /* typedef LPFRHOOKPROC; */
  186. typedef HANDLE *LPHANDLE;
  187. /* typedef LPHANDLER_FUNCTION; */
  188. typedef int *LPINT;
  189. typedef long *LPLONG;
  190. typedef char *LPSTR;
  191.  
  192. #ifdef UNICODE
  193. typedef unsigned short *LPTCH;
  194. typedef unsigned short *LPTSTR;
  195. #else
  196. typedef char *LPTCH;
  197. typedef char *LPTSTR;
  198. #endif /* UNICODE */
  199.  
  200. typedef long LRESULT;
  201. typedef void *LPVOID;
  202. typedef const void *LPCVOID;
  203. typedef WCHAR *LPWCH;
  204. typedef unsigned short *LPWORD;
  205. typedef WCHAR *LPWSTR;
  206. /* typedef NPSTR; */
  207. typedef unsigned short *NWPSTR;
  208. typedef WINBOOL *PWINBOOL;
  209. typedef BYTE *PBOOLEAN;
  210. typedef BYTE *PBYTE;
  211. typedef const CHAR *PCCH;
  212. typedef CHAR *PCH;
  213. typedef CHAR *PCHAR;
  214. typedef const char *PCSTR;
  215. typedef const WCHAR *PCWCH;
  216. typedef const WCHAR *PCWSTR;
  217. typedef DWORD *PDWORD;
  218. typedef float *PFLOAT;
  219. typedef HANDLE *PHANDLE;
  220. /* typedef PHKEY; */
  221. typedef int *PINT;
  222. /* typedef LCID *PLCID; */
  223. typedef long *PLONG;
  224. typedef short *PSHORT;
  225. /* typedef PSID; */
  226. typedef char *PSTR;
  227. typedef char *PSZ;
  228.  
  229. #ifdef UNICODE
  230. typedef unsigned short *PTBYTE;
  231. typedef unsigned short *PTCH;
  232. typedef unsigned short *PTCHAR;
  233. typedef unsigned short *PTSTR;
  234. #else
  235. typedef unsigned char *PTBYTE;
  236. typedef char *PTCH;
  237. typedef char *PTCHAR;
  238. typedef char *PTSTR;
  239. #endif /* UNICODE */
  240.  
  241. typedef unsigned char *PUCHAR;
  242. typedef unsigned int *PUINT;
  243. typedef unsigned long *PULONG;
  244. typedef unsigned short *PUSHORT;
  245. typedef void *PVOID;
  246. typedef WCHAR *PWCH;
  247. typedef WCHAR *PWCHAR;
  248. typedef unsigned short *PWORD;
  249. /*
  250. typedef PWSTR;
  251. typedef REGSAM;
  252. */
  253.  
  254. typedef short RETCODE;
  255.  
  256. typedef HANDLE SC_HANDLE;
  257. typedef LPVOID  SC_LOCK;
  258. typedef SC_HANDLE *LPSC_HANDLE;
  259. typedef DWORD SERVICE_STATUS_HANDLE;
  260. /* typedef SPHANDLE; */
  261.  
  262. #ifdef UNICODE
  263. typedef unsigned short TBYTE;
  264. typedef unsigned short TCHAR;
  265. typedef unsigned short BCHAR;
  266. #else
  267. typedef unsigned char TBYTE;
  268. typedef char TCHAR;
  269. typedef BYTE BCHAR;
  270. #endif /* UNICODE */
  271.  
  272. typedef unsigned char UCHAR;
  273. typedef unsigned int UINT;
  274. typedef unsigned long ULONG;
  275. typedef unsigned short USHORT;
  276. #define VOID void
  277. typedef unsigned short WORD;
  278. typedef unsigned int WPARAM;
  279. /* typedef YIELDPROC; */
  280.  
  281. #endif    /* RC_INVOKED */
  282.  
  283. /* Only use __stdcall under WIN32 compiler */
  284. #ifdef i386
  285. #define STDCALL     __attribute__ ((stdcall))
  286. #define CDECL       __cdecl
  287. #define CALLBACK    WINAPI
  288. #define PASCAL      WINAPI
  289. #else
  290. #define STDCALL
  291. #define CDECL
  292. #define CALLBACK
  293. #define PASCAL
  294. #endif
  295. #define WINAPI      STDCALL
  296. #define APIENTRY    STDCALL
  297. #define WINGDIAPI
  298.  
  299. #define _export
  300.  
  301.  
  302. /* Skip if called by resource compiler */
  303. #ifndef    RC_INVOKED
  304.  
  305. /*
  306.   Enumerations
  307. */
  308. typedef enum _ACL_INFORMATION_CLASS {
  309.   AclRevisionInformation = 1,   
  310.   AclSizeInformation            
  311. } ACL_INFORMATION_CLASS; 
  312.  
  313. typedef enum _MEDIA_TYPE { 
  314.   Unknown,                
  315.   F5_1Pt2_512,            
  316.   F3_1Pt44_512,           
  317.   F3_2Pt88_512,           
  318.   F3_20Pt8_512,           
  319.   F3_720_512,             
  320.   F5_360_512,             
  321.   F5_320_512,             
  322.   F5_320_1024,            
  323.   F5_180_512,             
  324.   F5_160_512,             
  325.   RemovableMedia,         
  326.   FixedMedia              
  327. } MEDIA_TYPE; 
  328.  
  329. #endif    /* RC_INVOKED */
  330.  
  331. #define RASCS_DONE 0x2000
  332. #define RASCS_PAUSED 0x1000
  333.  
  334. #ifndef    RC_INVOKED
  335.  
  336. typedef enum _RASCONNSTATE { 
  337.     RASCS_OpenPort = 0, 
  338.     RASCS_PortOpened, 
  339.     RASCS_ConnectDevice, 
  340.     RASCS_DeviceConnected, 
  341.     RASCS_AllDevicesConnected, 
  342.     RASCS_Authenticate, 
  343.     RASCS_AuthNotify, 
  344.     RASCS_AuthRetry, 
  345.     RASCS_AuthCallback, 
  346.     RASCS_AuthChangePassword, 
  347.     RASCS_AuthProject, 
  348.     RASCS_AuthLinkSpeed, 
  349.     RASCS_AuthAck, 
  350.     RASCS_ReAuthenticate, 
  351.     RASCS_Authenticated, 
  352.     RASCS_PrepareForCallback, 
  353.     RASCS_WaitForModemReset, 
  354.     RASCS_WaitForCallback,
  355.     RASCS_Projected, 
  356.  
  357.     RASCS_StartAuthentication,  
  358.     RASCS_CallbackComplete,     
  359.     RASCS_LogonNetwork,         
  360.  
  361.     RASCS_Interactive = RASCS_PAUSED, 
  362.     RASCS_RetryAuthentication, 
  363.     RASCS_CallbackSetByCaller, 
  364.     RASCS_PasswordExpired, 
  365.  
  366.     RASCS_Connected = RASCS_DONE, 
  367.     RASCS_Disconnected 
  368. } RASCONNSTATE ; 
  369.  
  370. typedef enum _RASPROJECTION {  
  371.     RASP_Amb = 0x10000, 
  372.     RASP_PppNbf = 0x803F, 
  373.     RASP_PppIpx = 0x802B, 
  374.     RASP_PppIp = 0x8021 
  375. } RASPROJECTION ; 
  376.  
  377. typedef enum _SECURITY_IMPERSONATION_LEVEL {
  378.     SecurityAnonymous, 
  379.     SecurityIdentification, 
  380.     SecurityImpersonation, 
  381.     SecurityDelegation 
  382. } SECURITY_IMPERSONATION_LEVEL; 
  383.  
  384. typedef enum _SID_NAME_USE { 
  385.     SidTypeUser = 1, 
  386.     SidTypeGroup, 
  387.     SidTypeDomain, 
  388.     SidTypeAlias, 
  389.     SidTypeWellKnownGroup, 
  390.     SidTypeDeletedAccount, 
  391.     SidTypeInvalid, 
  392.     SidTypeUnknown 
  393. } SID_NAME_USE, *PSID_NAME_USE; 
  394.  
  395. typedef enum _TOKEN_INFORMATION_CLASS {
  396.     TokenUser = 1, 
  397.     TokenGroups, 
  398.     TokenPrivileges, 
  399.     TokenOwner, 
  400.     TokenPrimaryGroup, 
  401.     TokenDefaultDacl, 
  402.     TokenSource, 
  403.     TokenType, 
  404.     TokenImpersonationLevel, 
  405.     TokenStatistics 
  406. } TOKEN_INFORMATION_CLASS; 
  407.  
  408. typedef enum tagTOKEN_TYPE {
  409.     TokenPrimary = 1, 
  410.     TokenImpersonation 
  411. } TOKEN_TYPE; 
  412.  
  413. #endif /* RC_INVOKED */
  414.  
  415. /*
  416.   Macros
  417. */
  418. #define DECLARE_HANDLE(s) typedef HANDLE s
  419. #define FORWARD_WM_NOTIFY(hwnd, idFrom, pnmhdr, fn) \
  420.     (void)(fn)((hwnd), WM_NOTIFY, (WPARAM)(int)(id), \
  421.     (LPARAM)(NMHDR FAR*)(pnmhdr)) 
  422.  
  423. #define GetBValue(rgb)   ((BYTE) ((rgb) >> 16)) 
  424. #define GetGValue(rgb)   ((BYTE) (((WORD) (rgb)) >> 8)) 
  425. #define GetRValue(rgb)   ((BYTE) (rgb)) 
  426. #define RGB(r, g ,b)  ((DWORD) (((BYTE) (r) | \
  427.     ((WORD) (g) << 8)) | \
  428.     (((DWORD) (BYTE) (b)) << 16))) 
  429.  
  430. #define HANDLE_WM_NOTIFY(hwnd, wParam, lParam, fn) \
  431.     (fn)((hwnd), (int)(wParam), (NMHDR FAR*)(lParam)) 
  432.  
  433. #define HIBYTE(w)   ((BYTE) (((WORD) (w) >> 8) & 0xFF)) 
  434. #define HIWORD(l)   ((WORD) (((DWORD) (l) >> 16) & 0xFFFF)) 
  435. #define LOBYTE(w)   ((BYTE) (w)) 
  436. #define LOWORD(l)   ((WORD) (l)) 
  437. #define MAKELONG(a, b) \
  438.     ((LONG) (((WORD) (a)) | ((DWORD) ((WORD) (b))) << 16)) 
  439. #define MAKEWORD(a, b) \
  440.     ((WORD) (((BYTE) (a)) | ((WORD) ((BYTE) (b))) << 8)) 
  441.  
  442. /* original Cygnus headers also had the following defined: */
  443. #define SEXT_HIWORD(l)     ((((int)l) >> 16))
  444. #define ZEXT_HIWORD(l)     ((((unsigned int)l) >> 16))
  445. #define SEXT_LOWORD(l)     ((int)(short)l)
  446.  
  447. #define INDEXTOOVERLAYMASK(i) ((i) << 8) 
  448. #define INDEXTOSTATEIMAGEMASK(i) ((i) << 12) 
  449.  
  450. #define MAKEINTATOM(i)   (LPTSTR) ((DWORD) ((WORD) (i))) 
  451. #define MAKEINTRESOURCE(i)  (LPTSTR) ((DWORD) ((WORD) (i)))
  452.  
  453. #define MAKELANGID(p, s) ((((WORD) (s)) << 10) | (WORD) (p)) 
  454. #define PRIMARYLANGID(lgid)    ((WORD  )(lgid) & 0x3ff) 
  455. #define SUBLANGID(lgid)        ((WORD  )(lgid) >> 10) 
  456.  
  457. #define LANGIDFROMLCID(lcid)   ((WORD) (lcid)) 
  458. #define SORTIDFROMLCID(lcid) \
  459.           ((WORD  )((((DWORD)(lcid)) & 0x000FFFFF) >> 16)) 
  460. #define MAKELCID(lgid, srtid)  \
  461.     ((DWORD)((((DWORD)((WORD)(srtid))) << 16) |  \
  462.             ((DWORD)((WORD)(lgid))))) 
  463. #define MAKELPARAM(l, h)   ((LPARAM) MAKELONG(l, h)) 
  464. #define MAKELRESULT(l, h)   ((LRESULT) MAKELONG(l, h)) 
  465. #define MAKEPOINTS(l)   (*((POINTS FAR *) & (l))) 
  466. #define MAKEROP4(fore,back) \
  467.           (DWORD)((((back) << 8) & 0xFF000000) | (fore)) 
  468. #define MAKEWPARAM(l, h)   ((WPARAM) MAKELONG(l, h)) 
  469.  
  470. #ifndef max
  471. #define max(a, b)  (((a) > (b)) ? (a) : (b)) 
  472. #endif
  473.  
  474. #ifndef min
  475. #define min(a, b)  (((a) < (b)) ? (a) : (b)) 
  476. #endif
  477.  
  478. #define PALETTEINDEX(i) \
  479.     ((COLORREF) (0x01000000 | (DWORD) (WORD) (i))) 
  480. #define PALETTERGB(r, g, b)  (0x02000000 | RGB(r, g, b)) 
  481. #define POINTSTOPOINT(pt, pts) {(pt).x = (SHORT) LOWORD(pts); \
  482.       (pt).y = (SHORT) HIWORD(pts);} 
  483. #define POINTTOPOINTS(pt) \
  484.     (MAKELONG((short) ((pt).x), (short) ((pt).y))) 
  485.  
  486. #define INDEXTOOVERLAYMASK(i) ((i) << 8)  
  487. #define INDEXTOSTATEIMAGEMASK(i) ((i) << 12)  
  488.  
  489. #ifdef UNICODE
  490. #define TEXT(quote) L##quote 
  491. #else
  492. #define TEXT(quote) quote
  493. #endif
  494.  
  495. /* Skip if invoked by resource compiler */
  496. #ifndef    RC_INVOKED
  497.  
  498. /*
  499.    Definitions for callback procedures
  500. */
  501. typedef int CALLBACK (*BFFCALLBACK) (HWND, UINT, LPARAM, LPARAM);
  502. typedef UINT CALLBACK (*LPCCHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
  503. typedef UINT CALLBACK (*LPCFHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
  504. typedef DWORD CALLBACK (*PTHREAD_START_ROUTINE) (LPVOID);
  505. typedef PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE;
  506. typedef DWORD CALLBACK (*EDITSTREAMCALLBACK) (DWORD, LPBYTE, LONG, LONG);
  507. typedef UINT CALLBACK (*LPFRHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
  508. typedef UINT CALLBACK (*LPOFNHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
  509. typedef UINT CALLBACK (*LPPRINTHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
  510. typedef UINT CALLBACK (*LPSETUPHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
  511. typedef WINBOOL CALLBACK (*DLGPROC) (HWND, UINT, WPARAM, LPARAM);
  512. typedef int CALLBACK (*PFNPROPSHEETCALLBACK) (HWND, UINT, LPARAM);
  513. typedef VOID CALLBACK (*LPSERVICE_MAIN_FUNCTION) (DWORD, LPTSTR);
  514. typedef int CALLBACK (*PFNTVCOMPARE) (LPARAM, LPARAM, LPARAM);
  515. typedef LRESULT CALLBACK (*WNDPROC) (HWND, UINT, WPARAM, LPARAM);
  516. typedef int CALLBACK (*FARPROC)();
  517. typedef FARPROC PROC;
  518. typedef WINBOOL CALLBACK (*ENUMRESTYPEPROC) (HANDLE, LPTSTR, LONG);
  519. typedef WINBOOL CALLBACK (*ENUMRESNAMEPROC) (HANDLE, LPCTSTR, LPTSTR, LONG);
  520. typedef WINBOOL CALLBACK (*ENUMRESLANGPROC) (HANDLE, LPCTSTR, LPCTSTR, WORD, LONG);
  521. typedef FARPROC DESKTOPENUMPROC;
  522. typedef WINBOOL CALLBACK (*ENUMWINDOWSPROC) (HWND, LPARAM);
  523. typedef WINBOOL CALLBACK (*ENUMWINDOWSTATIONPROC) (LPTSTR, LPARAM);
  524. typedef VOID CALLBACK (*SENDASYNCPROC) (HWND, UINT, DWORD, LRESULT);
  525. typedef VOID CALLBACK (*TIMERPROC) (HWND, UINT, UINT, DWORD);
  526. typedef FARPROC GRAYSTRINGPROC;
  527. typedef WINBOOL CALLBACK (*DRAWSTATEPROC) (HDC, LPARAM, WPARAM, int, int);
  528. typedef WINBOOL CALLBACK (*PROPENUMPROCEX) (HWND, LPCTSTR, HANDLE, DWORD);
  529. typedef WINBOOL CALLBACK (*PROPENUMPROC) (HWND, LPCTSTR, HANDLE);
  530. typedef LRESULT CALLBACK (*HOOKPROC) (int, WPARAM, LPARAM);
  531. typedef VOID CALLBACK (*ENUMOBJECTSPROC) (LPVOID, LPARAM);
  532. typedef VOID CALLBACK (*LINEDDAPROC) (int, int, LPARAM);
  533. typedef WINBOOL CALLBACK (*ABORTPROC) (HDC, int);
  534. typedef UINT CALLBACK (*LPPAGEPAINTHOOK) (HWND, UINT, WPARAM, LPARAM );
  535. typedef UINT CALLBACK (*LPPAGESETUPHOOK) (HWND, UINT, WPARAM, LPARAM );
  536. typedef int CALLBACK (*ICMENUMPROC) (LPTSTR, LPARAM);
  537. typedef LONG (*EDITWORDBREAKPROCEX) (char *, LONG, BYTE, INT);
  538. typedef int CALLBACK (*PFNLVCOMPARE) (LPARAM, LPARAM, LPARAM);
  539. typedef WINBOOL CALLBACK (*LOCALE_ENUMPROC) (LPTSTR);
  540. typedef WINBOOL CALLBACK (*CODEPAGE_ENUMPROC) (LPTSTR);
  541. typedef WINBOOL CALLBACK (*DATEFMT_ENUMPROC) (LPTSTR);
  542. typedef WINBOOL CALLBACK (*TIMEFMT_ENUMPROC) (LPTSTR);
  543. typedef WINBOOL CALLBACK (*CALINFO_ENUMPROC) (LPTSTR);
  544. typedef WINBOOL CALLBACK (*PHANDLER_ROUTINE) (DWORD);
  545. typedef WINBOOL CALLBACK (*LPHANDLER_FUNCTION) (DWORD);
  546. typedef UINT CALLBACK (*PFNGETPROFILEPATH) (LPCTSTR, LPSTR, UINT);
  547. typedef UINT CALLBACK (*PFNRECONCILEPROFILE) (LPCTSTR, LPCTSTR, DWORD);
  548. typedef WINBOOL CALLBACK (*PFNPROCESSPOLICIES) (HWND, LPCTSTR, LPCTSTR, LPCTSTR, DWORD);
  549.  
  550. #endif    /* RC_INVOKED */
  551.  
  552. #define SECURITY_NULL_SID_AUTHORITY     {0,0,0,0,0,0}
  553. #define SECURITY_WORLD_SID_AUTHORITY    {0,0,0,0,0,1}
  554. #define SECURITY_LOCAL_SID_AUTHORITY    {0,0,0,0,0,2}
  555. #define SECURITY_CREATOR_SID_AUTHORITY  {0,0,0,0,0,3}
  556. #define SECURITY_NON_UNIQUE_AUTHORITY   {0,0,0,0,0,4}
  557. #define SECURITY_NT_AUTHORITY           {0,0,0,0,0,5}
  558.  
  559. #define SE_CREATE_TOKEN_NAME              TEXT("SeCreateTokenPrivilege")
  560. #define SE_ASSIGNPRIMARYTOKEN_NAME        TEXT("SeAssignPrimaryTokenPrivilege")
  561. #define SE_LOCK_MEMORY_NAME               TEXT("SeLockMemoryPrivilege")
  562. #define SE_INCREASE_QUOTA_NAME            TEXT("SeIncreaseQuotaPrivilege")
  563. #define SE_UNSOLICITED_INPUT_NAME         TEXT("SeUnsolicitedInputPrivilege")
  564. #define SE_MACHINE_ACCOUNT_NAME           TEXT("SeMachineAccountPrivilege")
  565. #define SE_TCB_NAME                       TEXT("SeTcbPrivilege")
  566. #define SE_SECURITY_NAME                  TEXT("SeSecurityPrivilege")
  567. #define SE_TAKE_OWNERSHIP_NAME            TEXT("SeTakeOwnershipPrivilege")
  568. #define SE_LOAD_DRIVER_NAME               TEXT("SeLoadDriverPrivilege")
  569. #define SE_SYSTEM_PROFILE_NAME            TEXT("SeSystemProfilePrivilege")
  570. #define SE_SYSTEMTIME_NAME                TEXT("SeSystemtimePrivilege")
  571. #define SE_PROF_SINGLE_PROCESS_NAME       TEXT("SeProfileSingleProcessPrivilege")
  572. #define SE_INC_BASE_PRIORITY_NAME         TEXT("SeIncreaseBasePriorityPrivilege")
  573. #define SE_CREATE_PAGEFILE_NAME           TEXT("SeCreatePagefilePrivilege")
  574. #define SE_CREATE_PERMANENT_NAME          TEXT("SeCreatePermanentPrivilege")
  575. #define SE_BACKUP_NAME                    TEXT("SeBackupPrivilege")
  576. #define SE_RESTORE_NAME                   TEXT("SeRestorePrivilege")
  577. #define SE_SHUTDOWN_NAME                  TEXT("SeShutdownPrivilege")
  578. #define SE_DEBUG_NAME                     TEXT("SeDebugPrivilege")
  579. #define SE_AUDIT_NAME                     TEXT("SeAuditPrivilege")
  580. #define SE_SYSTEM_ENVIRONMENT_NAME        TEXT("SeSystemEnvironmentPrivilege")
  581. #define SE_CHANGE_NOTIFY_NAME             TEXT("SeChangeNotifyPrivilege")
  582. #define SE_REMOTE_SHUTDOWN_NAME           TEXT("SeRemoteShutdownPrivilege")
  583.  
  584. #define SERVICES_ACTIVE_DATABASEW      L"ServicesActive"
  585. #define SERVICES_FAILED_DATABASEW      L"ServicesFailed"
  586. #define SERVICES_ACTIVE_DATABASEA      "ServicesActive"
  587. #define SERVICES_FAILED_DATABASEA      "ServicesFailed"
  588. #define SC_GROUP_IDENTIFIERW           L'+'
  589. #define SC_GROUP_IDENTIFIERA           '+'
  590.  
  591. #ifdef UNICODE
  592. #define SERVICES_ACTIVE_DATABASE       SERVICES_ACTIVE_DATABASEW
  593. #define SERVICES_FAILED_DATABASE       SERVICES_FAILED_DATABASEW
  594. #define SC_GROUP_IDENTIFIER            SC_GROUP_IDENTIFIERW
  595. #else 
  596. #define SERVICES_ACTIVE_DATABASE       SERVICES_ACTIVE_DATABASEA
  597. #define SERVICES_FAILED_DATABASE       SERVICES_FAILED_DATABASEA
  598. #define SC_GROUP_IDENTIFIER            SC_GROUP_IDENTIFIERA
  599. #endif /* UNICODE */
  600.  
  601.  
  602. /* Skip if invoked by resource compiler */
  603. #ifndef    RC_INVOKED
  604.  
  605. /* ---------------------------------- */
  606. /* From ddeml.h in old Cygnus headers */
  607.  
  608. typedef void (*CALLB) ();
  609. typedef CALLB PFNCALLBACK;
  610.  
  611. typedef WINBOOL SECURITY_CONTEXT_TRACKING_MODE;
  612.  
  613. /* End of stuff from ddeml.h in old Cygnus headers */
  614. /* ----------------------------------------------- */
  615.  
  616. typedef FARPROC WNDENUMPROC;
  617. typedef FARPROC ENHMFENUMPROC;
  618. typedef DWORD CCSTYLE, *PCCSTYLE, *LPCCSTYLE;
  619. typedef DWORD CCSTYLEFLAGA, *PCCSTYLEFLAGA, *LPCCSTYLEFLAGA;
  620. #define DECLARE_HANDLE(s) typedef HANDLE s
  621.  
  622. #endif
  623.  
  624. #ifdef __cplusplus
  625. }
  626. #endif /* __cplusplus */
  627.  
  628. #endif /* _GNU_H_WINDOWS32_BASE */
  629.